package com.hochschild.sgv.service.implementacion;

import com.hochschild.sgv.domain.Feriado;
import com.hochschild.sgv.sap.ConexionSAP;
import com.hochschild.sgv.service.FeriadoManager;
import com.sap.mw.jco.JCO.Table;
import java.util.ArrayList;
import java.util.List;

public class SimpleFeriadoManager implements FeriadoManager {

    public List<Feriado> obtieneFeriados(String idDivision, String fechaInicio, String fechaFin) {
        List<Feriado> feriados = new ArrayList<Feriado>();
        ConexionSAP conexionSAP = new ConexionSAP();
        System.out.println("I_WERKS: " + idDivision + " I_BEGDA: " + fechaInicio + " I_ENDDA: " + fechaFin);
        try {
            conexionSAP = ConexionSAP.getConexionSAP();
            conexionSAP.RegistrarRFC("ZHR_RFC_CONSULTAR_FERIADOS");
            conexionSAP.IngresarDatosInput(idDivision, "I_WERKS");
            conexionSAP.IngresarDatosInput(fechaInicio, "I_BEGDA");//(fecha inicio)
            conexionSAP.IngresarDatosInput(fechaFin, "I_ENDDA");//(fecha fin),
            conexionSAP.EjecutarRFC();
            Table table = conexionSAP.rFC.getTableParameterList().getTable("T_DIAS");
   
            for (int i = 0; i < table.getNumRows(); i++) {
                table.setRow(i);
                String[] fila = table.getField("LINEA").getString().split("[|]");
                Feriado feriadoSap = new Feriado();
                feriadoSap.setFecha(fila[0].replaceAll("\\.", "/"));
                feriadoSap.setDescripcion(fila[1]);
                feriados.add(feriadoSap);
            }

        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            conexionSAP.DesconectarSAP();
        }
        return feriados;
    }
}
